<?php

require_once 'LoginView.php';//------------------------Behövs EJ----------------------------
require_once 'TextStringOutput.php';
require_once 'model/InputValidationHandler.php';

	
class RegistrerView {
	
	//Konstant för att slippa upprepa username osv.
	const UserName = "username";
	const Email = "email";
	const Password = "password";
	const Password2 = "password2";
	const RegisterUser = "registreramig";
	const Human = "areyouhuman";
	
	//Skriver ut xhtml-registreringsformuläret
 	public function DoRegistrerBox() {
 		$loginView = new LoginView(); //--------------------------Behövs EJ!----------------------
		return "
		<div id='header'>
			<div id='titleDiv'>
				<img src='pics/figures4you.png' alt='Loggo' class='logga' />
			</div>
				<div id='regDiv'>
					<p><a href='?'>Avbryt</a></p>
				</div>
			</div>
				<div id='content'>
					<div id='loginbox'>
						<form action='' method='post' id='regformularet'>
						<fieldset>
						<legend>
							Registrering
						</legend>
						<label for='username'>*Användarnamn:</label></br>
						<input type='text' name='" . RegistrerView::UserName . "' id='username'/>
						<br />
						<label for='username'>*E-post:</label></br>
						<input type='text' name='" . RegistrerView::Email . "' id='email'/>
						<br />
						<label for='password'>*Lösenord:</label></br>
						<input type='password' name='" . RegistrerView::Password . "' id='password'/>
						<br />
						<label for='verifierapassword'>*Verifiera lösenord:</label></br>
						<input type='password' name='" . RegistrerView::Password2 . "' id='verifierapassword'/>
						<br />
						<label for='human'>*Är du mänsklig? 1+1 =</label></br>
						<input type='text' name='" . RegistrerView::Human . "' id='human'/>
						<br />
						<input type='submit' value='Registrera mig' class='button' name='". RegistrerView::RegisterUser ."'/>
						</fieldset>
						</form>
					</div>
				</div>
		<div id='footer'>
			<p>&copy Klas Lundin 2011</p>
		</div>"
	;}
	
	//Om användarnamn och lösen är OK (skillt från falskt) returnera Sant
	public function IsValidationOk(){
		if($this->GetUserName() !== FALSE && $this->GetPassword() !== FALSE ){
			return TRUE;
		}
		return FALSE;
	}
	
	//Hämtar användarnamn, email, lösen annars returnera falskt
	public function GetUserName(){	
		if(isset($_POST[RegistrerView::UserName])){			
			return $_POST[RegistrerView::UserName];
		}
		return FALSE;
		
	}
	
		public function GetEmail(){
		if(isset($_POST[RegistrerView::Email])){
			return $_POST[RegistrerView::Email];
		}
		return FALSE;
	}

	public function GetPassword(){
		if(isset($_POST[RegistrerView::Password])){
			return $_POST[RegistrerView::Password];
		}
		return FALSE;
	}
	
	//Om registreringsknappen "är satt (tryckt)"
	public function TriedToRegister () {
		if(isset($_POST[RegistrerView::RegisterUser])){
			return TRUE;
		}
		return FALSE;
	}
	
	//Om registreringsknappen "är satt" och fälten är tomma
	public function GetMessages(){
		if(isset($_POST[RegistrerView::RegisterUser])){
			
			   if (empty($_POST[RegistrerView::UserName])){
			   		return TextStringOutput::UserNameRequired;     
	          }
	          
	           if (empty($_POST[RegistrerView::Email])) {
			   	return TextStringOutput::EmailRequired;
			   }
	
	           if(empty($_POST[RegistrerView::Password]) && (empty($_POST[RegistrerView::Password2]))) {
	                return TextStringOutput::PasswordRequired;                      
	           }
			                     
			   if ($_POST[RegistrerView::Password] !== $_POST[RegistrerView::Password2]) {
		            return TextStringOutput::NotSamePassword;
		       }
			   
			   if (empty($_POST[RegistrerView::Human])) {
			   	return TextStringOutput::questionRequired;
			   }
			   
		}
		
		// Om regExpen ej stämmer
		if (InputValidationHandler::isValidUser($_POST[RegistrerView::UserName]) == FALSE) {
				return TextStringOutput::UserNameNotValid;
		}
					
		if(InputValidationHandler::isValidPass($_POST[RegistrerView::Password])== FALSE) {
				return TextStringOutput::PasswordNotValid;
		}
		
		if (InputValidationHandler::isValidEmail($_POST[RegistrerView::Email])== FALSE) {
				return TextStringOutput::EmailNotValid;
		}
		
		if (InputValidationHandler::isValidQuestion($_POST[RegistrerView::Human])==FALSE){
				return TextStringOutput::questionNotValid;
		}
		return "";
	}
	
}